package interfaces;

import java.util.List;

import modelos.Aluno;
import modelos.Endereco;
import modelos.Funcionario;
import modelos.Modalidade;
import modelos.Pessoa;

public interface IFachada {

	Pessoa salvarPessoa(Pessoa pessoa);

	Pessoa atualizarPessoa(Pessoa pessoa);

	Pessoa removerPessoa(Pessoa pessoa);

	List<Pessoa> listarPessoas();
	
	Pessoa getPessoaPorId(int id);
	
	Pessoa getPessoaPorCpf(String cpf);
	
	Aluno salvarAluno(Aluno aluno);
	
	Aluno atualizarAluno(Aluno aluno);
	
	Aluno removerAluno(Aluno aluno);
	
	List<Aluno> listarAlunos();
	
	Aluno getAlunoPorId(int id);
	
	Aluno getAlunoPorCpf(String cpf);
	
	Aluno getAlunoPorMatricula(int matricula);
	
	Funcionario salvarFuncionario(Funcionario funcionario);
	
	Funcionario atualizarFuncionario(Funcionario funcionario);
	
	Funcionario removerFuncionario(Funcionario funcionario);
	
	List<Funcionario> listarFuncionarios();
	
	Funcionario getFuncionarioPorId(int id);
	
	Funcionario getFuncionarioPorCodigo(String codigo);
	
	Funcionario getFuncionarioPorCpf(String cpf);
	
	Endereco salvarEndereco(Endereco endereco);
	
	Endereco atualizarEndereco(Endereco endereco);
	
	Endereco removerEndereco(Endereco endereco);
	
	List<Endereco> listarEnderecos();
	
	Endereco getEnderecoPorId(int id);
	
	Modalidade salvarModalidade(Modalidade modalidade);

	Modalidade atualizarModalidade(Modalidade modalidade);

    Modalidade removerModalidade(Modalidade modalidade);

	List<Modalidade> listarModalidades();
	
	Modalidade getModalidadePorId(int id);

}
